# 变量类型注解
"""
    1.n1 : int 对n1进行类型注解，表示n1为int类型
    2.注意如果，给出的值和类型不一致，Pycharm会给出黄色警告
"""
n1: int = 100
n2: float = 3.14
n3: str = 'hello'
n4: bool = True


# 对象类型注解
class Cat:
    pass


# cat: Cat 对cat进行类型注解，表示cat为Cat类型
cat: Cat = Cat()

# 容器类型注解
"""
    1.my_list:list 对my_list进行类型注解，表示my_list为list类型
    2.my_tuple:tuple 对my_tuple进行类型注解，表示my_tuple为tuple类型
    3.my_dict:dict 对my_dict进行类型注解，表示my_dict为dict类型
    4.my_set:set 对my_set进行类型注解，表示my_set为set类型
"""
my_list: list = [1, 2, 3]
my_tuple: tuple = (1, 2, 3)
my_dict: dict = {'name': 'jack', 'age': 18}
my_set: set = {1, 2, 3}

# 容器详细类型注解
# my_list1: list[int] 对my_list1进行类型注解，表示my_list1为int类型的list类型
my_list1: list[int] = [1, 2, 3]
# my_tuple1: tuple[int, str] 对my_tuple1进行类型注解，表示my_tuple1为int和str类型的tuple类型
my_tuple1: tuple[int, str] = (1, 'hello')
# my_dict1: dict[str, int] 对my_dict1进行类型注解，表示my_dict1为str和int类型的dict类型
# 字典的键是string 值的类型是int
my_dict1: dict[str, int] = {'name': 1, 'age': 18}

# 注释中使用注解
n5 = 100 # type: float
